import { IPSDEUILogicLinkGroupCond } from './ipsdeuilogic-link-group-cond';
import { IPSDEUILogicNode } from './ipsdeuilogic-node';
import { IPSModelObject } from '../../ipsmodel-object';

/**
 *
 * @export
 * @interface IPSDEUILogicLink
 */
export interface IPSDEUILogicLink extends IPSModelObject {
  /**
   * 目标逻辑节点对象
   *
   * @type {IPSDEUILogicNode}
   */
  getDstPSDEUILogicNode(): IPSDEUILogicNode | null;

  /**
   * 连接条件
   * @type {string}
   */
  linkCond: string;

  /**
   * 连接模式
   * @description 值模式 [实体界面逻辑连接模式] {0：常规、 1：默认连接、 2：异步结束、 3：异步拒绝、 9：异常处理 }
   * @type {( number | 0 | 1 | 2 | 3 | 9)}
   */
  linkMode: number | 0 | 1 | 2 | 3 | 9;

  /**
   * 连接条件对象
   *
   * @type {IPSDEUILogicLinkGroupCond}
   */
  getPSDEUILogicLinkGroupCond(): IPSDEUILogicLinkGroupCond | null;

  /**
   * 源逻辑节点对象
   *
   * @type {IPSDEUILogicNode}
   */
  getSrcPSDEUILogicNode(): IPSDEUILogicNode | null;

  /**
   * 异常处理连接
   * @type {boolean}
   * @default false
   */
  catchLink: boolean;

  /**
   * 默认连接
   * @type {boolean}
   * @default false
   */
  defaultLink: boolean;

  /**
   * 异步完成连接
   * @type {boolean}
   * @default false
   */
  fulfilledLink: boolean;

  /**
   * 异步拒绝连接
   * @type {boolean}
   * @default false
   */
  rejectedLink: boolean;

  /**
   * 子调用连接
   * @type {boolean}
   * @default false
   */
  subCallLink: boolean;
}
